package _07;
/*
问题描述
　　对于一个 n 行 m 列的表格，我们可以使用螺旋的方式给表格依次填上正整数，我们称填好的表格为一个螺旋矩阵。
　　例如，一个 4 行 5 列的螺旋矩阵如下：
　　1 2 3 4 5
　　14 15 16 17 6
　　13 20 19 18 7
　　12 11 10 9 8
输入格式
　　输入的第一行包含两个整数 n, m，分别表示螺旋矩阵的行数和列数。
　　第二行包含两个整数 r, c，表示要求的行号和列号。
输出格式
　　输出一个整数，表示螺旋矩阵中第 r 行第 c 列的元素的值。
样例输入
4 5
2 2
样例输出
15
评测用例规模与约定
　　对于 30% 的评测用例，2 <= n, m <= 20。
　　对于 70% 的评测用例，2 <= n, m <= 100。
　　对于所有评测用例，2 <= n, m <= 1000，1 <= r <= n，1 <= c <= m。
*/

import java.util.Scanner;

public class _07 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int m = sc.nextInt();
        int r = sc.nextInt();
        int c = sc.nextInt();
        sc.close();
        int[][] arr = new int[m][n];
        int num = 1;
        //四个边界的范围
        int upBound = 0;
        int rightBound = arr[0].length - 1;
        int leftBound = 0;
        int downBound = arr.length - 1;

        while (true) {
            //向四个方向放数  上下左右四个循环
            //上面放最上面一行的  下面最下面一行 如果放完数的话就可以跳过这一层
            int i = leftBound;
            for (; i <= rightBound; i++) {
                arr[upBound][i] = num++;
//                    System.out.println(upBound + "  " + i + "  " + num);
            }
            if (++upBound > downBound) {
                break;
            }
            for (i = upBound; i <= downBound; i++) {
                arr[i][rightBound] = num++;
//                    System.out.println(i + "  " + rightBound + " " + num);
            }
            if (--rightBound < 0) {
                break;
            }
            for (i = rightBound; i >= leftBound; i--) {
                arr[downBound][i] = num++;
//                    System.out.println(downBound + "  " + i + " " + num);
            }
            if (--downBound < 0) {
                break;
            }
            for (i = downBound; i >= upBound; i--) {
                arr[i][leftBound] = num++;
//                    System.out.println(i + "  " + leftBound + " " + num);
            }
            if (++leftBound > rightBound) {
                break;
            }
        }
        System.out.println(arr[r - 1][c - 1]);
    }
}
